from sqlalchemy import create_engine,Column,ForeignKey,Integer,String,TEXT,BOOLEAN,Enum,DATE,DECIMAL
from sqlalchemy.ext.declarative import declarative_base
from datetime import date
from sqlalchemy.orm import sessionmaker,relationship
#默认配置 （负责整个项目的配置信息）
class Config:
    #配置数据库和SQLAlchemy
    HOSTNAME = '127.0.0.1'
    PORT = '3306'
    DATABASE = 'test2'
    USERNAME = 'root'
    PASSWORD = '123456'
    DB_URI = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8mb4'.format(USERNAME, PASSWORD, HOSTNAME, PORT, DATABASE)
    SQLALCHEMY_DATABASE_URI=DB_URI#SQLALchemy（ORM的框架）关联关系数据库的地址
    SQLALCHEMY_TRACK_MODIFICATIONS=False#是否让SQLALchemy追踪数据库的修改（不需要）



#日志的配置
    LOGGING_LEVEL='DEBUG'#日志的级别
    LOGGING_FILE_DIR='logs/'#相对路径 路径的目录
    LOGGING_FILE_MAX_BYTES=300*1024*1024#最大的日志文件的大小
    LOGGING_FILE_BACKUP=10#备份日志的个数


#添加了这两句代码 限流器的数据就会保存在redis数据中了  但是这个是由flask—limiter自动存的 我们要实现手动存验证码那个数字进redis数据库（需要用到flask-redis这个模块）
#需要先创建redis服务器端的客户端的连接
# 采用Redis保存数据，默认是内存，需要安装flask-redis
    RATELIMIT_STORAGE_URL = 'redis://127.0.0.1:6379/0'#0 表示0号库，用来存放限流数据
# 限制策略：移动窗口：时间窗口会自动变化
    RATELIMIT_STRATEGY = 'moving-window'


    #redis的数据库连接地址，使用数据库1来存放缓存数据 包括短信验证码
    #flask-redis 的配置非常方便，只需要在配置文件中增加 REDIS_URL 的配置即可。
    REDIS_URL = "redis://127.0.0.1:6379/1"

#开发环境下的配置信息
class DevelopmentConfig(Config):
    DEBUG=True
    SQLALCHEMY_ECHO=True#打印sql语句 （未来希望salalchemy框架在执行某些操作的时候把sql语句打印出来）



#生产环境中的配置信息
class ProductConfig(Config):
    pass


